package org.ccay.security.dimension;

import java.io.Serializable;
import java.util.List;

import org.ccay.core.base.KeyValuePair;
import org.ccay.core.base.PageVO;
import org.ccay.core.base.PagedResult;

public interface DimensionDataProvider {
	
	/**
	 * 角色数据提供者名称
	 */
	public static final String SYS_ROLE_PROVIDER = "SYS_ROLE_PROVIDER";
	
	/**
	 * 用户数据提供者名称
	 */
	public static final String SYS_USER_PROVIDER = "SYS_USER_PROVIDER";
	
	
	/**
	 * 返回所有维度分页可选值(用于定义数据范围)
	 * @param condition 查询条件
	 * @param page 分页条件
	 * @return key 可选值（存储用） value 展示值（展示用）
	 */
	PagedResult<KeyValuePair<? extends Serializable,String>> 
		findPagedDimensionValues(KeyValuePair<? extends Serializable,String> condition,PageVO page);
	
	/**
	 * 通过维度值获取显示值(用于定义数据范围)
	 * @param keys
	 * @return
	 */
	List<KeyValuePair<? extends Serializable, String>> findDimensionDisplayValues(List<? extends Serializable> keys);
	
	
}
